  
  
/*  
* Copyright @ 2017 com.iflysse.trains  
* xebest-erp 上午11:05:48  
* All right reserved.  
*  
*/  
  
package com.xebest.web.service;  

import java.util.List;
import java.util.Map;

import com.xebest.web.form.XeVenStoreInfoUpdateForm;
import com.xebest.web.model.XeVenStoreCoverAreaEntity;
import com.xebest.web.model.XeVenStoreInfoEntity;
import com.xebest.web.view.ErpUserInfo;
import com.xebest.web.view.VenStoreRepeatCoverAreaView;
import com.xebest.web.view.XeVenStoreInfoView;
import org.apache.ibatis.annotations.Param;


/**  
 * @desc: xebest-erp  
 * @author: 杜春静 
 * @createTime: 2017年6月14日 上午11:05:48  
 * @history:  
 * @version: v1.0    
 */

public interface XeVenStoreInfoService {
	/**
	 * 查询仓库列表
	 * @author: 杜春静  
	 * @createTime: 2017年6月15日 下午4:51:42  
	 * @history:  
	 * @param paramMap
	 * @return List<XeVenStoreInfoEntity>
	 */
	List<XeVenStoreInfoView> listByStoreInfoEntity(Map<String, Object> paramMap);
	/**
	 * 添加仓库信息
	 * @author: 杜春静  
	 * @createTime: 2017年6月19日 下午3:18:14  
	 * @history:  
	 * @param form
	 * @return Map<String, Object>
	 * @throws Exception 
	 */
	Map<String, Object> insertStoreInfo(XeVenStoreInfoUpdateForm form,ErpUserInfo userInfo) throws Exception;
	/**
	 * 修改仓库信息
	 * @author: 杜春静  
	 * @createTime: 2017年6月15日 下午4:54:03  
	 * @history:  
	 * @param entity
	 * @return int
	 * @throws Exception 
	 */
	Map<String, Object> updateStoreInfo(XeVenStoreInfoUpdateForm form,ErpUserInfo userInfo) throws Exception;
	/**
	 * 查询仓库与其他仓库重复的覆盖区域
	 * @author: 杜春静  
	 * @createTime: 2017年6月20日 下午5:40:16  
	 * @history:  
	 * @param storeId
	 * @param cityIds
	 * @return List<XeVenStoreCoverAreaEntity>
	 */
	List<VenStoreRepeatCoverAreaView> listOtherStoreCoverArea(String storeId, String[] cityIds,String userCode);
	
	/**
	 * 根据仓库代码查询仓库信息
	 * @author: 杜春静  
	 * @createTime: 2017年7月12日 下午1:54:09  
	 * @history:  
	 * @param storeId
	 * @param userCode
	 * @return XeVenStoreInfoEntity
	 */
	XeVenStoreInfoEntity getStoreInfoByMap(String storeId,String userCode);
	
	/**
	 * 根据仓库信息统计已有的仓库信息
	 * @author: 杜春静  
	 * @createTime: 2017年6月16日 上午10:35:21  
	 * @history:  
	 * @param entity
	 * @return long
	 */
	long countByStoreInfo(XeVenStoreInfoEntity entity);

	/**
	 * 根据仓库id查询仓库类型
	 * @author: Wangyp
	 * @createTime: 2017/9/4 17:46
	 * @param :
	 * @return:
	 */
	XeVenStoreInfoEntity getStoreTypeByStoreId(String storeId, String userCode);

	/**
	 * 获取仓库名称列表
	 * @author: 杜春静  
	 * @createTime: 2017年6月16日 上午11:09:41  
	 * @history:  
	 * @return List<Map<String,Object>>
	 */
	List<Map<String, Object>>  listStoreName(Map<String, Object> param);
	  
	/**  启用或禁用仓库
	 * @author: 杜春静  
	 * @createTime: 2017年6月20日 下午8:28:31  
	 * @history:  
	 * @param storeId
	 * @param storeStatus
	 * @param userCode
	 * @return String  
	 * @throws Exception 
	*/  
	Map<String, Object> enableOrDisableStore(String storeId, int storeStatus,String userCode) throws Exception;

}
  
